/*
 * File:   Octree.cpp
 * Author: Luis
 *
 * Created on 26 de Abril de 2011, 07:15
 */

#include "Octree.h"
#include "Ponto.h"
#include <stdio.h>
#include <stdlib.h>
//Para debugg
#include <iostream>
using namespace std;

/*
 * Constante que define o tamanho inicial
 * que será divido na busca
 */
#define tamanhoMAX 10000000

    /**
     * Estrutura de um nó não folha, ou seja, um nó interno
     * contém oito ponteiros que apontam para outros nós
     */
    typedef struct nodo arv;

    struct nodo{
        arv *ram01;
        arv *ram02;
        arv *ram03;
        arv *ram04;
        arv *ram05;
        arv *ram06;
        arv *ram07;
        arv *ram08;
	//variaveis relativas ao ponto
	float x;
	float y;
	float z;
	int cc;
	int conf;
	//Ponteiro entre nós folhas
	arv *folha;
    };





//Variável que armazena o ultimo nó folha criado para fazer a busca sequêncial na varredura
arv *UltimoNoFolhaCriado=NULL;


Octree::Octree() {
}

Octree::Octree(const Octree& orig) {
}

Octree::~Octree() {
}


/**
 * Verifica se árvore
 * está vazia 1 se verdade 0 caso contrário
 */
int Octree::VerificaVazia(arv *a){
    if(a->ram01 == NULL && a->ram02 == NULL && a->ram03 == NULL
            && a->ram04== NULL && a->ram05==NULL && a->ram06==NULL
            && a->ram07==NULL && a->ram08==NULL)
        return 1;

    return 0;
}


/**
 * Seta o threshold passado pelo usuários
 * é um atributo da classe Octatree
 */
void Octree::setThreshold(float threshold){
    this->threshold = threshold;
}

/**
 * Calcula número de níveis que será caminhado
 * pela árvore dependendo do limiar
 */
int Octree::calculoNiveis(){
    int niveis=0;
    float inicial = tamanhoMAX;
    cout << "Limiar dentro classe " <<threshold <<endl;
    while(inicial > threshold )
    {
        niveis++;
        inicial = inicial/2;

    }
    cout << "Niveis da classe " << niveis << endl;
    return niveis;
}


/**
 * Cria nó Interno
 */
arv * CriaNoInterno(){
    arv *a = (arv*) malloc(sizeof(arv));
    a->ram01=NULL;a->ram02=NULL;a->ram03=NULL;
    a->ram04=NULL;a->ram05=NULL;a->ram06=NULL;a->ram07=NULL;a->ram08=NULL;a->folha=NULL;
    a->x=0; a->y=0; a->z=0; a->cc=0; a->conf=0;
    return a;
}

/**ó
 *Função recursiva
*/
int Octree::InsercaoRecursiva(arv *no, Ponto *p, float minX, float MaxX, float minY, float MaxY, float minZ, float MaxZ, float size){


	bool cx, cy, cz;

	//Calcula Média
        //float Av = size/2;

	//Calcula média
	float Avx = (minX+MaxX)/2;
	float Avy = (minY+MaxY)/2;
	float Avz = (minZ+MaxZ)/2;

	size = size/2;

        //printf("Média %f\n", Av);
//	arv *novo_filho;


	//Se o tamanho da folha for menor que duas vezes o limiar
	//Testa se havia ponto inserido antes senão insere na folha
        if(size < threshold*2){

		//Construir os casos da tabela verdade para determinar onde vai ser inserido
		//Se tudo negativo <<<
		if(no->x==0 && no->y==0 && no->z==0 && no->cc==0 && no->conf==0){
				//novo_filho = CriaNoInterno();

				no->x = p->x;
				no->y = p->y;
				no->z = p->z;
				no->cc = p->cc;
				no->conf = p->conf;
				no->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = no;
				//printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
		/**

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
	        */
		}/**
		//Se <<>
		if(cx==false && cy==false && cz==true){
			if(no->ram02 == NULL){
				novo_filho = CriaNoInterno();

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}
		//Se <><
		if(cx==false && cy==true && cz==false){
			if(no->ram03 == NULL){
				novo_filho = CriaNoInterno();


				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}
		//Se <>>
		if(cx==false && cy==true && cz==true){
			if(no->ram04 == NULL){
				novo_filho = CriaNoInterno();


				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}
		//Se ><<
		if(cx==true && cy==false && cz==false){
			if(no->ram05 == NULL){
				novo_filho = CriaNoInterno();

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}
		//Se ><>
		if(cx==true && cy==false && cz==true){
			if(no->ram06 == NULL){
				novo_filho = CriaNoInterno();

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}

		//Se >><
		if(cx==true && cy==true && cz==false){
			if(no->ram07 == NULL){
				novo_filho = CriaNoInterno();

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}//senão perde o ponto

		}

		//Se >>>
	  	if(cx==true && cy==true && cz==true){
			if(no->ram08 == NULL){
				novo_filho = CriaNoInterno();

				novo_filho->x = p->x;
				novo_filho->y = p->y;
				novo_filho->z = p->z;
				novo_filho->cc = p->cc;
				novo_filho->conf = p->conf;
				novo_filho->folha = UltimoNoFolhaCriado;
				UltimoNoFolhaCriado = novo_filho;
				printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);
			}
		}//senão perde o ponto
	  	*/
		//Verifica se tem ponto no nó
		return 0;
	}

	//printf("TESTE\n");
	//printf("Médias %f %f %f\n", Avx, Avy, Avz);
	if(p->x > Avx) cx = true; else cx = false;
	if(p->y > Avy) cy = true; else cy = false;
	if(p->z > Avz) cz = true; else cz = false;

	arv* folha;
	//Construir os casos da tabela verdade

	//Se tudo negativo <<< -> Sétimo quadrante
        if(cx==false && cy==false && cz==false){
		//Testa se precisa criar ou não nó
		if(no->ram01 == NULL){
			folha = CriaNoInterno();
			no->ram01 = folha;
		}
		//Não cria
		else{
		       folha = no->ram01;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, minX, Avx, minY, Avy, minZ, Avz,size);
	}
	//Se <<> -> Terceiro quadrante
	if(cx==false && cy==false && cz==true){
		//Testa se precisa criar ou não nó
		//printf("Ponto\n");
		if(no->ram02 == NULL){
		//	printf("Nó Criado\n");
			folha = CriaNoInterno();
			no->ram02 = folha;
		}
		//Não cria
		else{
		  //     printf("Nó não Criado\n");
		       folha = no->ram02;
		}
		//Chama função recursivamente
		InsercaoRecursiva(folha, p, minX, Avx, minY, Avy, Avz, MaxZ, size);

	}
	//Se <><
	if(cx==false && cy==true && cz==false){
		//Testa se precisa criar ou não nó
		if(no->ram03 == NULL){
			folha = CriaNoInterno();
			no->ram03 = folha;
		}
		//Não cria
		else{
		       folha = no->ram03;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, minX, Avx, Avy, MaxY, minZ, Avz,size);

	}
	//Se <>>
	if(cx==false && cy==true && cz==true){
		//Testa se precisa criar ou não nó
		if(no->ram04 == NULL){
			folha = CriaNoInterno();
			no->ram04 = folha;
		}
		//Não cria
		else{
		       folha = no->ram04;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, minX, Avx, Avy, MaxY, Avz, MaxZ,size);

	}
	//Se ><<
	if(cx==true && cy==false && cz==false){
		//Testa se precisa criar ou não nó
		if(no->ram05 == NULL){
			folha = CriaNoInterno();
			no->ram05 = folha;
		}
		//Não cria
		else{
		       folha = no->ram05;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, Avx, MaxX, minY, Avy, minZ, Avz,size);

	}
	//Se ><>
	if(cx==true && cy==false && cz==true){
		//Testa se precisa criar ou não nó
		if(no->ram06 == NULL){
			folha = CriaNoInterno();
			no->ram06 = folha;
		}
		//Não cria
		else{
		       folha = no->ram06;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, Avx, MaxX, minY, Avy, Avz, MaxZ,size);

	}

        //Se >><
	if(cx==true && cy==true && cz==false){
		//Testa se precisa criar ou não nó
		if(no->ram07 == NULL){
			folha = CriaNoInterno();
			no->ram07 = folha;
		}
		//Não cria
		else{
		       folha = no->ram07;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, Avx, MaxX, Avy, MaxY, minZ, Avz,size);

	}

	//Se >>>
  	if(cx==true && cy==true && cz==true){

		//Testa se precisa criar ou não nó
		if(no->ram08 == NULL){
			folha = CriaNoInterno();
			no->ram08 = folha;
		}
		//Não cria
		else{
		       folha = no->ram08;
		}
		//Chama função recursivamente
   		InsercaoRecursiva(folha, p, Avx, MaxX, Avy, MaxY, Avz, MaxZ,size);

	}

	//printf("Não ENTROU EM NENHUMA OPÇÃO\n");
	return 0;
}



/**
 * Realiza Inserções na árvore
 * sabendo quantos níveis serão caminhados
 */
void Octree::Insercao(arv *a, Ponto *p, int niveis){
    //cout<<"Inseriu\n";
    float indice = tamanhoMAX;
    arv *novo;
    arv *novo_filho;

    int DivX=0;
    int DivY=0;
    int DivZ=0;
        //níveis depende do valor máximo inicial
	//Ramo1
        if(p->x > 0 && p->y > 0 && p->z > 0 ){
            	if(a->ram01 == NULL){
			novo = CriaNoInterno();
	        	a->ram01 = novo;
		}else{
		      novo = a->ram01;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






               if(p->x > indice/2 && p->y > indice/2 && p->z > indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<indice/2 && p->y>indice/2 && p->z>indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<indice/2 && p->y<indice/2 && p->z>indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>indice/2 && p->y<indice/2 && p->z>indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > indice/2 && p->y > indice/2 && p->z < indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<indice/2 && p->y>indice/2 && p->z<indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<indice/2 && p->y<indice/2 && p->z<indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>indice/2 && p->y<indice/2 && p->z<indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }


               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
//////

//RAMO 2

        if(p->x < 0 && p->y > 0 && p->z > 0 ){
            	if(a->ram02 == NULL){
			novo = CriaNoInterno();
	        	a->ram02 = novo;
		}else{
		      novo = a->ram02;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






               if(p->x > -indice/2 && p->y > indice/2 && p->z > indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<-indice/2 && p->y>indice/2 && p->z>indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<-indice/2 && p->y<indice/2 && p->z>indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>-indice/2 && p->y<indice/2 && p->z>indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > -indice/2 && p->y > indice/2 && p->z < indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<-indice/2 && p->y>indice/2 && p->z<indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<-indice/2 && p->y<indice/2 && p->z<indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>-indice/2 && p->y<indice/2 && p->z<indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
	       indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice + indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
//////

//RAMO 3

        if(p->x < 0 && p->y < 0 && p->z > 0 ){
            	if(a->ram03 == NULL){
			novo = CriaNoInterno();
	        	a->ram03 = novo;
		}else{
		      novo = a->ram03;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






               if(p->x > -indice/2 && p->y > -indice/2 && p->z > indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<-indice/2 && p->y>-indice/2 && p->z>indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<-indice/2 && p->y<-indice/2 && p->z>indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>-indice/2 && p->y<-indice/2 && p->z>indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > -indice/2 && p->y > -indice/2 && p->z < indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<-indice/2 && p->y>-indice/2 && p->z<indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<-indice/2 && p->y<-indice/2 && p->z<indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>-indice/2 && p->y<-indice/2 && p->z<indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice + indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
/////
//RAMO 4

        if(p->x > 0 && p->y < 0 && p->z > 0 ){
            	if(a->ram04 == NULL){
			novo = CriaNoInterno();
	        	a->ram04 = novo;
		}else{
		      novo = a->ram04;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






                if(p->x > indice/2 && p->y > -indice/2 && p->z > indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<indice/2 && p->y>-indice/2 && p->z>indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<indice/2 && p->y<-indice/2 && p->z>indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>indice/2 && p->y<-indice/2 && p->z>indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > indice/2 && p->y > -indice/2 && p->z < indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<indice/2 && p->y>-indice/2 && p->z<indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<indice/2 && p->y<-indice/2 && p->z<indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>indice/2 && p->y<-indice/2 && p->z<indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice + indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z>indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z<indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z>indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z<indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }

	}
/////////
/////
//RAMO 5

        if(p->x > 0 && p->y > 0 && p->z < 0 ){
            	if(a->ram05 == NULL){
			novo = CriaNoInterno();
	        	a->ram05 = novo;
		}else{
		      novo = a->ram05;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






               if(p->x > indice/2 && p->y > indice/2 && p->z > -indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<indice/2 && p->y>indice/2 && p->z>-indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<indice/2 && p->y<indice/2 && p->z>-indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>indice/2 && p->y<indice/2 && p->z>-indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > indice/2 && p->y > indice/2 && p->z < -indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<indice/2 && p->y>indice/2 && p->z<-indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<indice/2 && p->y<indice/2 && p->z<-indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>indice/2 && p->y<indice/2 && p->z<-indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice + indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
////
//RAMO 6

        if(p->x < 0 && p->y > 0 && p->z < 0 ){
            	if(a->ram06 == NULL){
			novo = CriaNoInterno();
	        	a->ram06 = novo;
		}else{
		      novo = a->ram06;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






               if(p->x > -indice/2 && p->y > indice/2 && p->z > -indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x< -indice/2 && p->y>indice/2 && p->z> -indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x< -indice/2 && p->y<indice/2 && p->z> -indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x> -indice/2 && p->y<indice/2 && p->z> -indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > -indice/2 && p->y > indice/2 && p->z < -indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x< -indice/2 && p->y>indice/2 && p->z< -indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x< -indice/2 && p->y<indice/2 && p->z< -indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x> -indice/2 && p->y<indice/2 && p->z< -indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
	       indice = indice/2;
	       novo=novo_filho;

	       for(int i=0; i<(niveis-1); i++){
				//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice + indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
		if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	        novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
////////
////RAMO 7

        if(p->x < 0 && p->y < 0 && p->z < 0 ){
            	if(a->ram07 == NULL){
			novo = CriaNoInterno();
	        	a->ram07 = novo;
		}else{
		      novo = a->ram07;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






                if(p->x > -indice/2 && p->y > -indice/2 && p->z > -indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<-indice/2 && p->y>-indice/2 && p->z>-indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<-indice/2 && p->y<-indice/2 && p->z>-indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>-indice/2 && p->y<-indice/2 && p->z>-indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > -indice/2 && p->y > -indice/2 && p->z < -indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<-indice/2 && p->y>-indice/2 && p->z<-indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<-indice/2 && p->y<-indice/2 && p->z<-indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>-indice/2 && p->y<-indice/2 && p->z<-indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
		if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice + indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice - indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< -indice + indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>-indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<-indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>-indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }
	}
////////
///RAMO 8

        if(p->x > 0 && p->y < 0 && p->z < 0 ){
            	if(a->ram08 == NULL){
			novo = CriaNoInterno();
	        	a->ram08 = novo;
		}else{
		      novo = a->ram08;
		}

	//If para o proximo nivel logo depois da raiz(aqui considerado primeiro nivel)






                if(p->x > indice/2 && p->y > -indice/2 && p->z > -indice/2){
                   if(novo->ram01 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram01 = novo_filho;
		   }else{
		   	novo_filho = novo->ram01;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = 1;

               }
		if(p->x<indice/2 && p->y> -indice/2 && p->z> -indice/2){
                   if(novo->ram02 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram02 = novo_filho;
		   }else{
		   	novo_filho = novo->ram02;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = 1;
               }
		if(p->x<indice/2 && p->y< -indice/2 && p->z> -indice/2){
                   if(novo->ram03 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram03 = novo_filho;
		   }else{
		   	novo_filho = novo->ram03;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = 1;

               }
		if(p->x>indice/2 && p->y< -indice/2 && p->z> -indice/2){
                   if(novo->ram04 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram04 = novo_filho;
		   }else{
		   	novo_filho = novo->ram04;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = 1;
	       }

               if(p->x > indice/2 && p->y > -indice/2 && p->z < -indice/2){
                   if(novo->ram05 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram05 = novo_filho;
		   }else{
		   	novo_filho = novo->ram05;
	           }
		   DivX = 1;
		   DivY = 1;
		   DivZ = -1;
               }
		if(p->x<indice/2 && p->y> -indice/2 && p->z< -indice/2){
                   if(novo->ram06 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram06 = novo_filho;
		   }else{
		   	novo_filho = novo->ram06;
	           }
		   DivX = -1;
		   DivY = 1;
		   DivZ = -1;

               }
  	       if(p->x<indice/2 && p->y< -indice/2 && p->z< -indice/2){
                   if(novo->ram07 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram07 = novo_filho;
		   }else{
		   	novo_filho = novo->ram07;
	           }
		   DivX = -1;
		   DivY = -1;
		   DivZ = -1;

               }

               if(p->x>indice/2 && p->y< -indice/2 && p->z< -indice/2){
                   if(novo->ram08 == NULL){
			novo_filho = CriaNoInterno();
	                novo->ram08 = novo_filho;
		   }else{
		   	novo_filho = novo->ram08;
	           }
		   DivX = 1;
		   DivY = -1;
		   DivZ = -1;

               }
               indice = indice/2;
	       novo=novo_filho;
	     for(int i=0; i<(niveis-1); i++){

		//nó anterior vem do cubo 1(quadrante 1)
	      if(DivX == 1 && DivY==1 && DivZ == 1){

		 if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice + indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

		}
	if(DivX == -1 && DivY==1 && DivZ == 1){

		 if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}
	if(DivX == -1 && DivY==-1 && DivZ == 1){
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice - indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==-1 && DivZ == 1){

		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice + indice/2 && p->y>-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice+indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice+indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;



	}
	if(DivX == 1 && DivY==1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice + indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice+indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == -1 && DivY==-1 && DivZ == -1){

		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice - indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice-indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;


	}
	if(DivX == 1 && DivY==-1 && DivZ == -1){

		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram01 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram01 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram01;
	           	}

			DivX = 1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x< indice + indice/2 && p->y>-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram02 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram02 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram02;
	           	}

			DivX = -1;
		   	DivY = 1;
		   	DivZ = 1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram03 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram03 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram03;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z>-indice-indice/2){
			if(novo->ram04 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram04 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram04;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = 1;
		}
		if(p->x>indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram05 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram05 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram05;
	           	}
			DivX = 1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y>-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram06 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram06 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram06;
	           	}
			DivX = -1;
		   	DivY = 1;
		   	DivZ = -1;
		}
		if(p->x<indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram07 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram07 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram07;
	           	}
			DivX = -1;
		   	DivY = -1;
		   	DivZ = -1;
		}
		if(p->x>indice+indice/2 && p->y<-indice-indice/2 && p->z<-indice-indice/2){
			if(novo->ram08 == NULL){
				novo_filho = CriaNoInterno();
	                	novo->ram08 = novo_filho;
		   	}else{
		   		novo_filho = novo->ram08;
	           	}
			DivX = 1;
		   	DivY = -1;
		   	DivZ = -1;
		}

	       indice = indice/2;
	       novo=novo_filho;

	}








             }//fim for

	      if(novo_filho->x==0 && novo_filho->y==0 && novo_filho->z==0 && novo_filho->cc==0 && novo_filho->conf==0){
	       novo_filho->x = p->x;
		novo_filho->y = p->y;
		novo_filho->z = p->z;
		novo_filho->cc = p->cc;
		novo_filho->conf = p->conf;
		novo_filho->folha = UltimoNoFolhaCriado;
		UltimoNoFolhaCriado = novo_filho;
		printf("Elemento Inserido %f %f %f\n", p->x, p->y, p->z);

	      }

	}

}//end funcao



/**
 * Varre a árvore até as folhas e escreve no arquivo de saída
 */
void Octree::VarreArvore(FILE *fpOut){

	while(UltimoNoFolhaCriado != NULL){
		fprintf(fpOut, "%.2f %.2f %.2f %4d %1d \n", UltimoNoFolhaCriado->x, UltimoNoFolhaCriado->y, UltimoNoFolhaCriado->z,	UltimoNoFolhaCriado->cc, UltimoNoFolhaCriado->conf);
		UltimoNoFolhaCriado = UltimoNoFolhaCriado->folha;

	}
}

	